Drupal Hack Night

Events happening in the community are now at Drupal community events on www.drupal.org.
sheena_d's picture
Start: 
2009-04-22 18:30 - 21:30 America/New_York
Organizers: 
Event type: 
User group meeting

By Request: Drupal Hack Night!

Our Location :
Coalmarch Productions, LLC
125 Edinburgh South Drive Suite 200
Cary, NC, 27511

Unlike our normal meetings we will not have a presenter on this night. The Hack Night is geared towards folks who are currently using Drupal and are looking from some advice, help with a specific issue or to collaborate with others on a project.

To get the most out of this meeting, come prepared with a specific goal, question or project in mind (or just come with your knowledge and desire to help others!).

What are some questions or projects you plan to bring to the Hack Night? Discuss below!

Comments

I've been poking around with

gallamine's picture

I've been poking around with Drupal for Facebook module (http://drupal.org/project/fb). I'd love to have some concentrated time to sit down and get a FB application and FB connect up and running on my site.

Also, my design skills suck. I'd love to trade some help for some UI/Design advice.

Facebook Connect

Branjawn's picture

I have it working on one of my sites. Users can sign in with their FB account and import some info from FB to their profile page on the site.

FB connect

gallamine's picture

Neat. Have you tried making a FB application yet? I want to be able to push site content to my users profile pages, and vice versa.

Possible Mega Menu module

knieveltech's picture

After reading Nielsen's recent post on mega dropdown menu's I've been working on the spec for a drupal module that would make implementing something like this doable in conjunction with the menu & block modules. If anyone has experience hooking into the menu theming functions it'd be great to have the learning curve shortened a bit there. It would also be great to get some designer input on possible default stylesheets for this thing.

Allen, I don't know that I

sheena_d's picture

Allen, I don't know that I completely understand the problem you are trying to solve with this module, but look into the Menu Block module. If it should provide some insight into hooking into the menu system.

Also, please get me involved in the theming side of this module! :)

I'm interested

FilmKnurd's picture

I have to make a mega menu for a project I'm working on. So, I'd be interested in helping you make this module.

me too

drnikki's picture

I'm working on transitioning from nice menus to mega menus now, so I'd love to get involved in a project to make this into a module.

Mega menu

dayre_too's picture

The core theming hooks for menus, and the menu system as a whole in D6 doesn't provide any mechanism (afaik) for introducing flexible grouping into the menu structure to support mega menus.... you need to be able to rewrite menu_tree_output() from the looks of things. I need this too and i think a modification of the menu_block module would be a good start. It provides it's own menu_tree_output() to enable full control over theming arbitrary menu levels in a block.

It would be great to see afreemannc's specs...

mega drop downs

erykmynn's picture

We're going to want to implement something like this on our main website. Might have to roll our own, but it would be better if it worked with the drupal menu system and there was some collaboration on this. Has there been any further stirring?

The natives are restless

FilmKnurd's picture

There's a been a small bit of a stir but nothing major has started. I'll be working on implementing mega menus on an upcoming project (sometime in the next month) so I'm definitely interested in collaborating with someone.

I have some spare time I

knieveltech's picture

I have some spare time I could devote to this. It looks like there's sufficient interest to get something going.

Super

FilmKnurd's picture

Count me in :-)

So, did you ever write up that spec?

Nothing as formal as that.

knieveltech's picture

Nothing as formal as that. Mostly I've sat around debating the relative merits of administering this through form_alter()'ing the hell out of the menu.module interface, administering it via block.module's interface, or creating a totally unrelated third interface. I'm leaning towards a separate interface although modding menu.module's interface is doable as well. Thoughts?

I sort of have several

erykmynn's picture

I sort of have several levels of concern on my end.

First being how we "feed it" menu items without completely reinventing Drupal's Menus. (like for me, I find it a bit annoying that the "main" navigation is supposed to be the "navigation" menu, but all the drupal/user stuff is crammed in there too...). My ideal would to have some sort of javascript interface to a monolithic tree structure that you can then nab pieces of and direct to different menus. But it would have to still play nice with the core. (and yes, I know this is not really what this thread is about, but I'm curios what you're thinking as far as interface because realistically megadropdowns can handle 2-3 "levels" of nav and ideally would not orphan your deeper nav).

One, fairly clear and relatively simple idea I have is you create one big menu structure, and then you can choose a level of the hierarchy to "alias it out" as another menu name / block. Sort of how primary links can overtake secondary links but more adjustable. This would be less extension of the core. Maybe a separate project still, but possibly of benefit in general to those who want more from their menus.

Second being whether some of the intermediate steps between the menus and the mega-dropdowns should be packaged in a way that other developers can leverage them for other styles of menus. I'd have to say in this department, depending on how we access the menu information, there probably should be an abstract layer before you get to the megadropdowns as a UI component.

So maybe one (A) interface (or extension of the existing interfaces) for defining what chunks or branches define the menu(s) and making them accessible to another (B) interface that has options to configure the UI of the megadropdowns (with (C), other menu styles being possible as well if other developers wish it).

The third major area of discussion would be how much configuration of the UI to do in an admin menu, how much to leave up to theming, etc. Will we be able to agree on the general behaviors and implementation of MegaDrop downs?

How does all this relate to the experimentation you've done with the existing module interfaces?

EDIT: should we move this discussion to it's own home?

Similar thoughts

FilmKnurd's picture

Second being whether some of the intermediate steps between the menus and the mega-dropdowns should be packaged in a way that other developers can leverage them for other styles of menus. I'd have to say in this department, depending on how we access the menu information, there probably should be an abstract layer before you get to the megadropdowns as a UI component.

I think definitely yes. My vote would be for a module that consumes existing menus (with configurable options) and produces a new block or menu. We could also provide some stock CSS and Javascript, but someone could take the "middle product" as it were and do with it as they wish.

My ideal would to have some sort of javascript interface to a monolithic tree structure that you can then nab pieces of and direct to different menus. But it would have to still play nice with the core. (and yes, I know this is not really what this thread is about, but I'm curios what you're thinking as far as interface because realistically megadropdowns can handle 2-3 "levels" of nav and ideally would not orphan your deeper nav).

Selecting levels to pick off might be the easiest way to go. I've also been contemplating the idea of defining columns (or grids) that you then stuff menus into. The two could work together.

Given a tree structure:

Menu
  Level 1
    Level 2
    Level 2
    Level 2
  Level 1
    Level 2
    Level 2

In configuration, you define: Level 1 links to be headings. The module then spits out a mega menu in two columns, with the titles of those columns taken from the first level of the menu. But maybe you pick level 2 as your headings and the mega menu is built from level 2 down and ignores level 1.

So maybe one (A) interface (or extension of the existing interfaces) for defining what chunks or branches define the menu(s) and making them accessible to another (B) interface that has options to configure the UI of the megadropdowns (with (C), other menu styles being possible as well if other developers wish it).

Yeah, sounds good.

The third major area of discussion would be how much configuration of the UI to do in an admin menu, how much to leave up to theming, etc. Will we be able to agree on the general behaviors and implementation of MegaDrop downs?

Well, I don't know. In the example here, the first two examples are pretty different. I've also seen mega menus that were more grid like.

  -----------------------------------------
 |     title 1            |         title 2       |
 |    -- link --         |     -- link --       |
 |    -- link --         |     -- link --       |
 ------------------------------------------
 |     title 3            |          title 4       |
 |    -- link  --        |     -- link --        |
 ------------------------------------------

So, we'd have to figure out a flexible implementation. With adequate class names, it shouldn't be too difficult to offer a variety of mega menu styles and layouts.

The way I see it existing

knieveltech's picture

The way I see it existing core modules (menu, block) should provide 100% of the needed API to get this done, otherwise we're looking at deficiencies with core itself. Building some kind of advanced menu API is far beyond the scope of simply implementing megas, and should (in my mind anyway) be treated as a separate concept unless or until we run into a roadblock with the hooks currently available in core.

As far as standard behavior is concerned, the more I think on this the less point I see in administering one of these things via the Menu module. I'd say hook into Menu when menu items are created, have a separate glue table that keeps track of relationships between menu items and blocks in your mega, primary navigation elements could either be inherited from an existing menu or added on the fly and use a drag and drop interface (similar to blocks) to place combinations of subnav and block elements to build out your mega. And yes, I think this should probably have it's own home.

That's an idea

FilmKnurd's picture

What if you made a mega template file that defined regions? Administration would be just like assigning blocks, where you tell which menus (or menu levels) to output into certain regions.

I don't know, that might just add way too much markup overhead. But, it would be a little more flexible than simply injecting classes into the menu tree, in that you could maybe have other stuff besides menu placed into mega regions.

Not liking it as much

FilmKnurd's picture

On second thought.... This doesn't seem the most attractive of ideas.

beware the core

erykmynn's picture

afreemanc:

You're right, let's steer away from core alterations, that's a whole different can of worms. I was just trying to get the juices flowing by going a little "pie in the sky", but I think some of that still has bearing for how we choose to "glue" mega's to the existing menu structure. The exisiting menu API does quite a good job letting you craft hierarchical menus, so let's stick to that metaphor. You can actually easily manage a huge tree with what is already there, and the "regions or blocks" of menus discussion doesn't effect whether or not megas will work.

So my first suggestion might be dependency on HTML_MENU so that you can possibly have more things in the menus than just links. BTW I thought standard drupal menus allowed non-link placeholders, but I can't find them. Was I wrong about this? That would be a second thing to look at. Many Mega-Dropdowns have labels and other non-link elements. We either need something off-the-shelf that will let us drop these in, or some "glue" to stick them on easily.

Where should we move this discussion to? A new group here, or a project on Drupal.org?

BTW there is two of us here who will work on Megas, so this is a pretty good team going if I do say so.

(p.s. filmknurd, if you'd like to continue the "regions" of menus discussion on the side somewhere, I'm game. I agree a separate project, but still interesting I think.)

Initial spec

knieveltech's picture

I've started a draft (google doc) for the initial specification. Those interested should message me with a valid email address and I'll share the doc. I'm open to suggestions re: moving the discussion. I think it's premature to create a separate group here though. Maybe IRC?

Blocks: collalpsed/expanded

JudithA's picture

I would like to have collapsible blocks operating on my site. However, I see that there are still some issues about jstools and collapsiblock. I am using Drupal 6.13 and have some js there now (see below), but the blocks only work correctly in "edit" mode (??). Also, confused about the js changes with Drupal 6 which now includes functions to be included with Drupal.behaviors and about not needing "$(document).ready(function () anymore. I'm stepping into deep water here ...

<script language="javascript">
$ (document).ready(function () {
$("body.admin-build-modules
fieldset.collapsible:not(.collapsed) .collapse-processed a").click();
)):
</script>

Specifications:

  • Width: 10 ft.
  • Height: 12 ft.
  • Weight: 1.5 tons
  • Engine: Cummins Diesel

<.html>

Grateful for any help ...

menu import

erykmynn's picture

afreemanc:

Thanks for adding me to your spec sheet doc. I like where you are going, I will have to post my own notes, which, admittedly, are more conceptual and less implementation oriented. (so its good to know you already see a path to this).

The only question that really strikes me at this point is:

Why "import" a menu to mega-drop downs, instead of using the existing menu system? Is this to accommodate non-standard items? If so, there may be some module out there we can leverage that will address that concern and allow use of a single menu structure.

My main concern is that duplicating a menu might mean that if you are using that tree structure to generate more than one type of menu (like contextual side menus via menu_block). Obviously the ideal is that if you need to alter your menu structure, you do it once, in one place.

It does use the same menu

FilmKnurd's picture

The mega module will hook into the menu system so that changes made in either interface affect the other because the source material is the same.

Import is a waste of time. I

knieveltech's picture

Import is a waste of time. I realized that once I'd spent a little time working on the module. However I disagree with your assertion that menu structure (or any data for that matter) should only be alterable from one place. I believe that (ideally) data should be alterable anywhere it's surfaced. FilmKnurd's description of how the interface should work is accurate IMO.

Sorry I meant that it makes

erykmynn's picture

Sorry I meant that it makes the most sense if it draws off the built-in menu functionality, and that is stored in its "main" location. I didn't mean it to sound like it should only be editable there and not within the megamenu admin.

I have looked over the spec thoroughly and created another doc for you guys with my thoughts / questions for moving forward. http://docs.google.com/Doc?id=dghz7zpn_80hs57scfd This was largely based on a non-technical spec I was working up to capture what was needed at work for a general mega.

I have some time to devote to this now. I don't know how much tinkering/building you've started doing, but maybe we should divide up some of the unknowns to tinker with and then come back together to start building a module?

I've marked up your document

afreeman's picture

I've marked up your document with my immediate thoughts on the subject. No substantial work has been done on the module beyond planning. Andrew's been working on speculative layouts for the admin UI and I've spent a couple hours dinking around with various functions in menu.module looking for various pieces of the admin UI but nothing of substance has been written. I think interested parties should schedule a time in the near future to get together on IRC and hash out some of the more nebulous aspects of what this module will and won't do, then we can divy up the work and get cranking. To this end I'm available just about any time after 5:00PM eastern any day in the next two weeks. Thoughts?

Excellent, I responded to a

erykmynn's picture

Excellent, I responded to a few of your comments in my doc.

I'm west coast so I could hop on 5-8:30 eastern most days, unless I have a meeting. So right now most days are open except W next week.

I'm available after 7 Eastern

FilmKnurd's picture

I'm available after 7 Eastern on Mondays, Tuesdays, and Thursdays.

Great

perandre's picture

Great work. Keep the community posted on this one!

Per André Rønsen | Front | Twitter: @perandre

1st interactive planning discussion

afreeman's picture

Lets shoot for 7:00pm Eastern on Tuesday 9-15-09. We can use #drupal-nc on freenode. Does that work for everyone?

I was about to write "That

erykmynn's picture

I was about to write "That should be OK for me"

and then I got something for the Dean dropped in my lap for 6:30 eastern, so I'm doubting I can make it.

-Eric

p.s. is there a browser-based IRC solution?

That sucks but we all

afreeman's picture

That sucks but we all understand priorities. I can save a chat log from the discussion tonight and mail it to you, then we can go over it via IM or whatever when you're free.

Followup...

GaryWong's picture

Hi

May I ask here if there's been any further movement on integrating Mega Menu functionality into Drupal 6's existing menu structure and methods?

From reading this thread, it looks like the current menu API will not allow a simple "regenerate to Mega Menu"...

TIA
Gary

I wasn't aware that there was

FilmKnurd's picture

I wasn't aware that there was any movement to integrate Mega Menu functionality into core menus. We have made some progress on our mega menu module. Things have stalled for a bit, but we have a functional prototype and now we just have to finish the darn thing :-)

is the code available

rkendall's picture

do you mind sharing what has been done so far (even if it's not fully working).

If I can do anything with it, I will be happy to contribute any improvements.

Cheers

please dont throw rocks at me

prince.pangaea's picture

i am fairly new to drupal, but from what i see in the interface that it would seem as though the core menu module would have to be coerced into accepting different data types as input.
that being said, the menu would almost have to be written or replaced via hooks in order to work.

triDUG

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: